package com.yidu.ladder.base.service;

import java.util.List;
import java.util.Map;

import com.yidu.ladder.base.domain.Role;
import com.yidu.ladder.base.domain.RoleVo;
import com.yidu.ladder.base.domain.Subset;

/**
 * 角色业务逻辑接口类
 * 
 * @author yy
 * @since 2019-12-2
 *
 */
public interface RoleService {

	/**
	 * 分页查询角色
	 * 
	 * @param roleVo 角色包装
	 * @return 前端页面需要的键值对数据类型
	 */
	public Map<String, Object> queryRoleByCriteriaWithPage(RoleVo roleVo);

	/**
	 * 添加角色
	 * 
	 * @param role 角色
	 * @return 添加成功返回1，否则返回0
	 */
	public int addRole(Role role);

	/**
	 * 修改角色
	 * 
	 * @param role 角色
	 * @return 修改成功返回1，否则返回0
	 */
	public boolean updateRole(Role role);

	/**
	 * 冻结或还原角色
	 * 
	 * @param roleId 角色Id
	 * @param flag   得到状态
	 * @return 冻结或修改成功返回1，否则返回0
	 */
	public abstract boolean frozenOrRecoveRole(String roleId, String useable);

	/**
	 * 给下拉框赋值
	 * 
	 * @return
	 */
	public List<Subset> selectAllSubset();

}
